#include "stack.h"

/*创建一个容量为 capacity 的栈，并返回*/
DYMStack DYMStackCreate(int capacity)
{
    DYMStack ret = {
        .buffer = NULL,
        .capacity = capacity,
        .size = 0,
        .top = 0,
    };
    /* 在下面写上你的创建栈代码，也即是为栈申请空间（若你需要使用 malloc 函数，请自己手动包含 malloc.h）*/

    return ret;
}

/*  元素进栈，若当前栈已经满了，没办法再进栈返回0。进栈成功返回 1 
    stack : 元素应该进的栈
    elem  : 待进栈元素
*/
int DYMStackPush(DYMStack *stack,DYMStackDataType elem)
{
    int ret = 0;
    /* 在下面写上你的实现代码 */
    

    return ret;
}

/*  元素出栈，若当前栈已经空了，没办法再出栈返回0。出栈成功返回 1 
    stack : 待操作栈
*/
int DYMStackPop(DYMStack *stack)
{
    int ret = 0;
    /* 在下面写上你的实现代码 */


    return ret;
}

/*  查看栈顶元素，若当前栈已经空了，栈顶无元素返回 0。查看成功返回 1 
    stack   : 待操作栈
    topRlrm : 查找到栈顶元素后，需要将栈顶元素复制到 topElem中，以传出栈顶元素
    用法说明：假设我们有一个栈 sta1, 现在要取 sta1 的栈顶元素, 那么我们可以如下方式调用：
            DYMStack sta1;
            // ... 初始化等等，使得 sta1 中有元素,接下来我们需要获取sta1的栈顶元素
            DYMStackDataType buff;
            DYMStackTop(&sta1, &buff);
            // 现在 buff 中保存的就是 sta1 栈顶的元素了
*/
int DYMStackTop(DYMStack *stack, DYMStackDataType *topElem)
{
    int ret = 0;
    /* 在下面写上你的实现代码 */


    return ret;
}

/* 删除一个栈（释放申请的空间） */
void DYMStackDestory(DYMStack stack)
{
    /* 在下面写上你的实现 */

}

